perm filename NOTICE[UP,DOC]12 blob sn#034031 filedate 1973-04-12 generic text, type T, neo UTF8
00100	*25 Feb 1972	NOTICEs	LES
00200	
00300	This file, kept in  NOTICE[UP,DOC],  is intended  to  function  as  a
00400	computerized  bulletin  board.     System  programmers  and CUSP file
00500	contributors are invited to disseminate  information  concerning  new
00600	programs  and  system  features  by adding notices to this file.  The
00700	format is arbitrary, except that the first line (and only the first
00800	line) should begin with a "*" and should contain three fields in the
00900	form
01000	 *<date><TAB><subject><TAB><programmer initials>
01100	In the date field, the year, month and day may be given in any order
01200	and the year may be abbreviated to 2 digits, but the month must be
01300	given as 3 or more letters.
01400	
01500	*9 Jan 1973	NEWS	LES
01600	To get selective listings from the NOTICE file, say "R  NEWS",  which
01700	will respond with an asterisk and expect a query such as
01800	 *March 15
01900	This asks for all notices posted since the ides of March. If the  day
02000	is  omitted,  1  is  assumed;  if  the  month  is omitted, January is
02100	assumed; if the year is omitted  (as  above)  the  last  instance  is
02200	assumed.
02300	
02400	 *Nov<TAB>SAIL
02500	is an example of a more general kind if query.   This  asks  for  all
02600	notices  since  last  November  1  that  contain  the  string  "SAIL"
02700	somewhere in the subject field, with any  case  differences  ignored.
02800	The search could be made more specific by saying
02900	 *NOV<TAB>SAIL<TAB>DCS
03000	which delivers only such notices written by Dan Swinehart.
03100	
03200	If  the  query begins with a <TAB>, so that the date is omitted, then
03300	all dates will be accepted.   Similarly, the  Subject  field  may  be
03400	omitted. A null query outputs the entire NOTICE file.
03500	
03600	If you would like the output to be spooled, type "*" at  the  end  of
03700	your query, e. g.
03800	 *July 4, 1776	Sex*
03900	If you would like to see title lines only, put a "-" at the end.  You
04000	can use both "*" and "-" together in either order.
04100	
04200	If you forget all this, type "?<return>" and this notice will  appear
04300	magically.
04400	
04500	*1 JAN 1972	DO	RPH
04600	Manual is in DO.RPH[S,DOC].
04700	
04800	*1 JAN 1972	DMAN	REG
04900	Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
05000	
05100	*1 JAN 1972	SPOOLER	REG
05200	See SPOOL.DOC[S,DOC].
05300	
05400	*1 JAN 1972	RSL SL WHAMS BAMS ETC	JHS
05500	Service Level Reservation System -- see RSL[S,DOC]
05600	
05700	
05800	*1 JAN 1972	Keyboard Commands	LES
05900	To get a summary of line editor  and  other  Monitor  commands,  list
06000	KEY.LES[S,DOC).
06100	
06200	*11 APR 1973	INFO	REM
06300	
06400	To have access to the REM information system, type "R INFO".
06500	The general form of command is "R INFO;<FILNAM>;<PRETYPE>"
06600	if you are an expert and know what that means.
06700	
06800	*1 Jan 1972	FINGER	LES
06900	
07000	To get a listing of the names of all users currently  logged  in  and
07100	their locations, say "R FINGER".
07200	
07300	*29 Feb 1972	"Sticky PPN's" (RPG, COMPILE)	DCS
07400	
07500	   A PPN specification [P,PN] appearing before a file name in an
07600	RPG command string will be used for all subsequent files which
07700	do not specify a PPN explicitly.  This default remains in effect
07800	until another "sticky PPN" is specified.
07900	   As an example, if I am running under [AIL,DCS]:
08000	
08100	    COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
08200	
08300	would write the output on [AIL,DCS], get HEAD,DB, and PROD from
08400	[AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
08500	
08600	*1 Jan 1972	SAIL Statement Counter Profile	RES
08700	
08800	To find out how to get SAIL to give you execution frequency data for
08900	pieces of your program, list NEWMAN[S,AIL].
09000	
09100	*2 Mar 1972	CREF Default Listing Device	DCS
09200	
09300	The CREF default listing device has been changed from LPT to DSK.
09400	This change is not made in RPG mode (so that the CREF system
09500	command will still go directly to LPT).
09600	
09700	*14 Mar 1972	TV "." and <esc>I Features	DCS
09800	
09900	Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
10000	page to become a permanent part of the file (like "W" in SOS).  CANCEL
10100	will henceforth bring back this version, not the old one.
10200	
10300	To interrupt a "FIND" search prematurely, type <esc>I.  This replaces
10400	the "\<crlf>" method.
10500	
10600	*23 Mar 1972	TV for III	DCS
10700	The TV editor (though still officially unsupported) will now run on
10800	both Data-Disk and III.  In fact, you can transfer (by detach/attach)
10900	from one to the other in mid-edit!
11000	
11100	*30 APR 72	SEND	RPH
11200	SEND NOW HAS THE FOLLOWING FORMATS:
11300	
11400	SEND PN		SEND TO ALL PN'S
11500	SEND *		WRITE NOTICE.TXT
11600	SEND *,PN	SAME AS SEND PN
11700	SEND P,*	SEND TO ALL P'S
11800	SEND P,PN	SEND TO SPECIFIC P,PN
11900	SEND *,*	SAME AS SEND *
12000	A PN IS SOME PROGRAMMER NAME
12100	A P IS SOME PROJECT NAME
12200	
12300	*30 APR 72	FAIL	FW
12400	The double arrow character is no longer treated specially
12500	within the comment portion of a line.  When not within a
12600	comment, it is equivalent to a carriage-return, line-feed
12700	pair.  Now, within comments, it prints as itself.
12800	
12900	*3 JUN 1972	RAID	DCS
13000	A new version of RAID is on the system.  Since it is compatible with
13100	both Data-Disc and III consoles, I have put it on SYS: as both 
13200	RAID.REL and TVRAID.REL.  Therefore /V, /1V, /H, /1H will all load
13300	the same program.  Later, TVRAID will be phased out (of LOADER, RPG)
13400	and the numeric argument to H and V switches will be ignored.
13500	This version has been tested fairly carefully.  But report any
13600	problems you have to DCS, anyway.  The old files are saved as
13700	RAID.RLO and TVRAID.RLO on [CSP,SYS].
13800	
13900	The following things have been changed:
14000	__ There are a few display changes; in particular, the arrow
14100	   conventions of the Data-Disc RAID are now used everywhere.
14200	__ Byte mode input will be displayed in byte mode.
14300	__ Conditional breakpoints now work exactly as advertised.
14400	__ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
14500	__ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
14600	
14700	The following new features have been added:
14800	__ There are three new entries to the dispatch table preceding
14900	   DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
15000	   this table.  The three are:
15100		DDT-12:	→$RPTCNT	See below
15200		DDT-11: →$BGDDT		First word of DDT
15300		DDT-10: →DDTEND		Last word of DDT
15400	
15500	__ This is "Version 1" of RAID.  The version is henceforth stored
15600	   in the leftmost 13 bits of JOBDDT.  Since DDT and old RAID
15700	   contain 0 here, you can tell which you have loaded.  This is for
15800	   the benefit of programs which use new features -- they can
15900	   try alternate methods if the Version isn't high enough.
16000	__ If you insert a JSR $I in your program, you will effectively
16100	   place a breakpoint at that location.  You can proceed via <ctrl>P.
16200	   DO NOT single-step or set a breakpoint on this instruction!
16300	   $I is an INTERNAL symbol in RAID.  There is a pointer to it at
16400	   DDT-6.
16500	__ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
16600	   the address specified by JOBOPC.  You can proceed with <ctrl>P.
16700	   Do not expect this to work if you enter DDT before running anything,
16800	   or if your program jumps to DDT (unless it stores a reasonable
16900	   address in JOBOPC first).
17000	__ n<ctrl><meta>S, where n is a number, will execute instructions
17100	   in multi-step mode, as it would if n were absent.  However, no
17200	   change will be made in  the display until:
17300	     1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
17400	     2) RAID must pause to get instructions at a subroutine call.
17500	     3) You interrupt the stepping by typing something, or a
17600		breakpoint is encountered.
17700	   After you respond at a type (2) pause, again the display remains
17800	   unchanged until one of the conditions occurs again.  If you
17900	   responded <ctrl>S or <ctrl>X to the pause, the count will be
18000	   exhausted before the display changes again -- barring type (3)
18100	   events.  The remaining count, if any, is always available in 
18200	    $RPTCNT.   This is useful for counting exact numbers of 
18300	     executions in a given routine, etc.
18400	__ Symbol<meta>K obliterates the Symbol.  Unlike <ctrl>K, which
18500	   simply eliminates typout of the symbol, this also makes it
18600	   undefined for typein.  If, for instance, you have two locations
18700	   with the name NM1, do:
18800		NM2←NM1		Assigns a new name to one of them.
18900		NM1<meta>K	Deletes this symbol completely.
19000		NM1;		Reveals value of the other NM1.  Now
19100				NM2 refers to the first.
19200	__ Macros:
19300	   Address<ctrl>M<letter> defines <ctrl><meta><letter> as
19400	   a macro.  When the macro is invoked, Address (it can be just
19500	   an address or a byte pointer value) will be put in $M-1 (see
19600	   RAID.ON[S,DOC].  This has the effect of evaluating the string
19700	   at Address before evaluating any more keyboard input -- expanding
19800	   the macro.  Be warned that many <ctrl><meta><letter> combinations
19900	   already mean something -- use one you can do without (the macro
20000	   takes precedence).
20100	*4 JUN 1972	NEW DISPLAY EDITOR	SRS
20200	
20300	there now exists a new display editor, called ED, available for
20400	experimentation.  to run it, type
20500	 RU ED[S,SRS]
20600	when it starts up, there will be some documentation on the screen.
20700		ED is presently experimental, and improving.  Features
20800	include:  editing several files at once, splitting screen between
20900	several files or strings, faster than TV in some cases.
21000	
21100	*6 JUN 1972	PUB MANUAL	TES
21200	
21300	A new version of PUB was put up today with some obscure bugs fixed.
21400	Indexes and headings now work well.  AFTER PAGE does not always
21500	work, but AFTER TEXT is usually equivalent and does work.
21600	If you must use old version, please tell me why! To use it, log in
21700	as 12,TES and RUN PUB.
21800	
21900	There is a new manual: SPOOL PUB.TES[S,DOC]/N/B   It is 80 PAGES long, so
22000	if you don't plan to use PUB for a few months, it is advisable to
22100	wait for the SAILON to be printed.  The new manual has an index
22200	and a tutorial for beginners, plus appendices with (untested) examples.
22300	To use PUB for simple purposes, only a portion of the manual needs to be
22400	read.
22500	
22600	*MAR 1972	LOGOUT	REG
22700	Recent changes to logout command.
22800	
22900		The logout command is used to terminate a job that was created
23000	by Login, Fork, or Cfork commands.  The usual form of the command is
23100	K or KJOB, typed at monitor level, followed by a carriage return.
23200	
23300		A new command is called KAT, which combines the features of the
23400	K command and the ATtach command.  KAT requires the job number of the
23500	job to which you want to attach.  As in the Attach command, if you
23600	are attaching to a job with a different PPN than the job you are leaving,
23700	you must supply the ppn of the job to which you are attaching.
23800	
23900		Command Formats
24000		Note that curly backets { and } denote optional
24100	arguments; pointy brackets < and > denote a symbolic item which  should
24200	be replaced by some concrete instantiation of that item.
24300	
24400	K or KJOB command:
24500	
24600	K{JOB}{/<switch list>}
24700	
24800	KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
24900	
25000	Each command line is terminated by a carriage return.
25100	
25200		The item <switch list> consists of any sequence of letters
25300	chosen from the list below:
25400		THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
25500	
25600	For further confusion, consult R. Gorin.
25700	*1969	DDT	WFW
25800	 The following changes have been made to DDT:
25900	
26000	 l.  Halfword printout is now of the form  A,,B  instead
26100	     of  (A)B.  Either form may be used on input.  The difference
26200	     is that  A,,B  truncates  A to 18  bits before 
26300	     swapping halves while  (A)B  does not.
26400	
26500	 2.  $U is a new output mode.  It is the same as $A$H.
26600	 3.  $F mode will now print normalized floating permit
26700	     numbers as decimal integers.  This means that
26800	     FORTRAN users may, in general, use $F to look at
26900	     all variables and they will be printed correctly 
27000	     either fixed or floating.
27100	
27200	 4.  If the address of a string of ASCIZ text is placed
27300	     in $nB+3, then whenever breakpoint  n  is reached,
27400	     DDT will act as if the characters in the string were
27500	     being read from the teletype.  If you are preparing 
27600	     such a string in advance use either  $ or ≠ (≠33 octal)
27700	     for altmode.
27800	
27900	5.   If a  bytepointer to an  asciz  string is placed in
28000	     $M-l, DDT will act as if the characters in the string
28100	     are being read from the teletype.
28200	
28300	 6.  $$7" <delimiter> characters <delimiter> will act just
28400	     like an  asciz   statement in MACRO or FAIL,i.e.,
28500	     more than one word will be filled with  asciz for 
28600	     the characters if necessary.  $$" will have a similar
28700	     effect but with sixbit.
28800	
28900	 7.  Typing <number>$$P will cause DDT to do an automatic
29000	     proceed  <number>  times instead of forever.
29100	
29200	 8.  When printing in  $$  mode, no word will be printed
29300	     out as an I/O instruction (COND, DATAO, CONI, etc.)
29400	     unless the device number is in a special table.  The
29500	     table is  10  words long and is in $I-1, $I-2, etc.
29600	     Simply put device number here to have the appropriate I/O
29700	     instructions printed.
29800	
29900	 9.  If an address is placed in  $M-2  then for each character
30000	     DDT wishes to output, a pushj 1,@$M-2 will be executed. 
30100	     This allows output to be redirected to some device 
30200	     other than the TTY.  The character is in register 5.  The
30300	     routine should preserve all AC's and end with a POPJ l,.
30400	
30500	10.  In byte mode output ($<number>0), if a size of 0
30600	     is specified, DDT will use a special mark in $M+2.
30700	     The boundry between 1 and 0 bits specifies the size
30800	     of the bytes.  For example, a word containing
30900	
31000			11111111111 00000000000 11100010110001
31100	
31200	     would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
31300	     bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
31400	
31500	11.  Bytes may be input of $<number>%.  This should be
31600	     followed by a string of unsigned octal numbers
31700	     separated by common and terminated by an altmode.  The 
31800	     number of bytes in a word is not integal the last
31900	     byte is treated as if the word were larger 
32000	     (bit number greater than 35).  This makes input compatible
32100	     with output.  A size of  O  uses the mark in $M+2
32200	     as above.
32300	
32400	12.  It is now possible to print flag words and  T  type
32500	     instruction (TRUN, TLNN, etc.) with suitable names
32600	     for the bit involved.  In $M+3 a pointer of the following
32700	     form is placed:
32800	
32900					_______
33000					|            |
33100	    _______      	|             |
33200	$M+3 |  L1 | T0  |		| Table 0    | 
33300					|            |
33400					_______
33500		
33600					
33700					_______
33800					|            |
33900					| Table 1    |
34000					|            |
34100					_______
34200	
34300					_______
34400					|	     |                
34500					| Table 2    |
34600					|	     |                
34700					_______
34800	     As many tables as desired may be included.  The pointer
34900	     to the last table should have 0 in the left half. Each
35000	     table contains 36 words.  The  nth  word contains the
35100	     RADIX50 for the name of bit n.  $<number>J  mode will
35200	     cause a word to be printed out using the bit names in
35300	     table number.  If an entry for a bit in 0, the numeric
35400	     value will be printed.  A typical word might look like
35500	
35600	              foo! baz! 123,, fool! garp! 2
35700	
35800	     $J means $0J.  $nL causes the left half to be
35900	     printed in symbolic and the right half to be printed in
36000		↑STODAT:
36100	     bit mode, using the names of the bits as if they appeared
36200	     in the left half. $<number>V prints the left half in symbolic
36300	     and the right half in bit mode.
36400	
36500	13.  You can now transfer to what is pointed to by the left half
36600	     of a word in the same manner as you transfer using <tab>.
36700	     The command is <control>].
36800	
36900	*FEB 1972	NEW WHO	DCS
37000	As of 12-9-71:
37100	
37200	1. WHO  will  run for about two minutes, then quit.  You can  reset
37300	   this time by issuing commands (see below).
37400	
37500	2. Typing <call> does not stop spacewar jobs.  However, after about
37600	   6 seconds of operation after a <call>, the spacewar portion of
37700	   WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777).  This will
37800	   be made cleaner if the system types give me some help.
37900	
38000	3. WHO commands are now single-character commands.  WHO will not wait
38100	   for a carriage return before executing one.
38200	
38300	4. Previously, many lines of the WHO page were lost below the bottom
38400	  of the screen.  WHO now provides a "windowing" feature.   Type  "↑"
38500	  to  move  the  text  up,  so  that the line which did appear at the
38600	  center of the screen now appears at the top.  This reveals  several
38700	  new  lines  at  the  bottom.  A digit preceding the "↑" serves as a
38800	  repeat factor.
38900	 
39000	5. The "↓" command, with optional repeat factor, moves the text down
39100	   by a half-screenful, unless the first line already is displayed.
39200	
39300	6. The "E" command causes WHO to quit.  However, the last-drawn screen
39400	   will not be cleared.  So you can look at it.
39500	
39600	7. Any other character will cause WHO to clear the screen (revealing
39700	   your old page printer), then quit.
39800	*14 June 1972	VIDEO SWITCH DOCUMENTATION	LES
39900	A  SAILON  describing  the   video   switch   hardware   resides   in
40000	VDS.LES[S,DOC].  A description of keyboard commands and monitor calls
40100	for controlling the switch and DD channel allocation are described in
40200	VIDEO.LES[UP,DOC].  To  get  a  summary of the keyboard commands, say
40300	"HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
40400	
40500	*7 July 1972	DOCUMENTATION FILES	LES
40600	Online documentation files are divided into several areas, as follows.
40700		[P,DOC] contains the compiled version of the lab phone
40800			directory and other lists of people.
40900		[UP,DOC] contains user program descriptions (informal).
41000		[S,DOC] contains SAILONs, which are more formal descriptions
41100			of programs and hardware.
41200		[AIM,DOC] contains A. I. Memos, which report research results.
41300		[BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
41400	
41500	*23 JULY 1972	KLOG	RHT
41600	The KLOG command allows you to switch areas in one line.  Semantically
41700	it is LOGOUT, followed by LOGIN.  The syntax is:
41800	
41900	KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
42000	
42100	examples 
42200	
42300	KLOG 1/RHT
42400	
42500	KL/F 1|RHT
42600	
42700	KL 
42800	1,RHT
42900	
43000	*24 Jul 1972	SAIL	DCS,RHT,JRL
43100	LEAP news
43200	
43300		1. In the past global model users of LEAP were required
43400		   to have the statement:
43500			
43600			REQUIRE -1 NEW_ITEMS;
43700			
43800		   in order to inhibit the allocation of various tables
43900		   for the local leap model. This statement is no longer
44000		   required. Instead the decision to allocate the tables
44100		   will be made using the following criteria. The local model
44200		   tables will be allocated only if any of the programs loaded
44300		   together to form a single job contain any declared local
44400		   items ( that is, any items declared without the attribute
44500		   GLOBAL), or any of the programs contain  the statement:
44600			
44700			REQUIRE n NEW_ITEMS;
44800	
44900	       	   where "n" is greater that 0.
45000		   NOTE: this means that all users of local model LEAP must now
45100		   "require" new_items if they are going to dynamically create
45200		   non-global items by using the function NEW.(previously an
45300		   implicit REQUIRE 60 NEW_ITEMS was contained in every program).
45400	
45500	
45600		2. LEAP tables are now allocated as part of the SAIL initialization
45700		   code rather than on the first call to any LEAP subroutine.
45800		   The tables will be allocated if any of the SAIL programs
45900		   loaded contain declared items, itemvars, sets, lists or calls
46000		   to LEAP. This change was made so that datums of items could
46100		   be utilized before the first call to LEAP.
46200	
46300		3. The type codes for items have been altered. The new codes
46400		   returned by the TYPEIT function are as follows:
46500	
46600				0 - item deleted or never allocated
46700				1 - no type (no datum for this item)
46800				2 - item is bracketed triple
46900				3 - string
47000				4 - real
47100				5 - integer
47200				6 - set
47300				7 - list
47400				8 - procedure
47500			       16 - string array
47600			       17 - real array
47700	                       18 - integer array
47800			       19 - set array
47900			       20 - list array
48000			       21 - invalid (runtime has screwed something up)
48100	 	   The very astute user will notice that the only changes are to
48200		   up the codes for arrays and invalid by 5.
48300	
48400		IMPORTANT NOTE:This unfortunately will necesitate the recompilation
48500		and reloading of any programs which use array items as the RUNTIME 
48600		routines also use these type codes.The standard
48700		compiler  SAIL on [1,3] will have these changes as of 23:59 WED,
48800		jul26. Therefore if any of your programs use array items you should
48900		recompile them starting Thurs jul 27. Foist all complaints onto
49000		Jim Low.
49100	
49200	
49300	*25 Jul 1972	SPOOLER	REG
49400	SPOOLER NEWS:
49500		The old spooler '*LIST*' has been removed  from  the  system.
49600	Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
49700	have to reload with the new libraray.
49800	
49900		The command SPOOLQ has been removed. Instead, use the command
50000	QSPOOL.   This  has the advantage that the command can be abbreviated
50100	to one letter and the SPOOL command to two letters.
50200	
50300		A new SPOOL command is planned. This will allow users to more
50400	fully utilize features of the new spooler.
50500	
50600	*1 Aug 1972	FORTRAN	REG
50700	DEC FORTRAN version 25 and LIB40 version 31 have been put up.
50800	Some of the bugs in the compiler / operating system have been
50900	eliminated.
51000	
51100	*9 Aug 1972	DATA DISK	FW
51200	Two new features have been added to data disk DPYOUT:
51300	
51400	1) Overlapped mode, enabled by bit 0 of header word 0.
51500	   In this mode, a DPYOUT will return without waiting for
51600	   the transfer to be completed (although it will wait
51700	   for any previou transfer), enabling the program to
51800	   continue running. Header+2 will be set nonzero during
51900	   the transfer, and to zero after the transfer is complete,
52000	   so testing this is convenient (which should be done before
52100	   changing the buffer). A DPYOUT with a zero word count will
52200	   wait for a previous transfer without initiating a new one.
52300	
52400	2) Double field mode, useful for text output. This is enabled
52500	   by bit 1 of header word 0 and will cause the buffer to be
52600	   transferred twice, once on each field. Header+3 should specify
52700	   the address of the line address command word, which should
52800	   contain the low-order line address as the third command in
52900	   the word. Bit 24 of this word will be set to the proper
53000	   field on each transfer. This feature cannot be used if more
53100	   than one low-order line address command is used.
53200	
53300	*16 Aug 1972	AP NEWS (APE, HOT)	ME
53400	
53500	We have a line from the Associated  Press  (AP)  over  which  we  get
53600	national  and  international news.  The news that comes in gets filed
53700	on the disk and saved for about 24 hours.
53800	
53900	For use in reading the news, there are two programs on the system.
54000	
54100	Type "R HOT" to have the news typed on your console as it comes in.
54200	
54300	Type "R APE" to be able to selectively read the news that is on file.
54400	The  stories  are catagorized by keywords; to read the news, you type
54500	to APE whatever keywords you want to read about.  To  get  help  when
54600	you are running APE, type "?" and carriage return at any point. For a
54700	list of the keywords, TYPE the file WORDS.SRT[AP,SYS]  or  SPOOL  the
54800	file WORDS.LST[AP,SYS].
54900	
55000	For further information, see the file APE.ME[UP,DOC].
55100	
55200	
55300	*16 AUG 1972	SAIL MATRIX ROUTINES PACKAGE	SHK
55400	
55500	Following Matrix Routines Now Available:
55600	
55700	1) Real Matrix Multiplication Routine
55800		Multiplies two n-dimensional matrices (2-dimensional arrays)
55900		(size  m x n by n x p  to get a  m x p  matrix)
56000		or multiplies a 1-dimensional matrix by an n-dimensional matrix
56100		or an n-dimensional matrix by a 1-dimensional.
56200	MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
56300		multiplies A by B and places the result in C
56400		(MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
56500		The only thing it won't do (I think) is multiply two 1-dimensional
56600		matrices or n-dimensional arrays (n>2).
56700	
56800	2) Array Clear Routine
56900		MATCLR(REAL (or INTEGER) ARRAY A);
57000		Zeros the array A.
57100	
57200	3) Real Array Multiplied by a Real Constant
57300		CONMUL(REAL ARRAY A,REAL B);
57400		Multiplies array A by constant B and places the result in A.
57500	
57600	All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
57700	
57800	
57900	*30 Aug 1972	UUO	SHK
58000	There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
58100	
58200	*4 Sept 1972	AP NEWS (APE, HOT)	ME
58300	 The AP news is now spooled once a day (at a somewhat random
58400	 time).  The listing, which will be kept in the conference
58500	 room, will indicate a file name of "APNEWS[AP,SYS]".
58600	
58700	*4 SEP 1972  FILDMP	RPH
58800	New program to list files in different formats. See FILDMP.RPH on UP,DOC.
58900	
59000	*4 SEP 1972  NEW SAIL	RHT
59100	 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM  WILL  BE  UP.  ITS
59200	 SEGMENT  WILL  BE  SAISG4.  THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
59300	 FEATURES, INCLUDING USER REQUESTED  INITIALIZATIONS,  A  LOCATION(X)
59400	 FUNCTION,  AN  IMPLICIT  ARRAY:  MEMORY[0:MEMSIZE], THE RUDIMENTS OF
59500	 MULTIPLE PROCESSES, AND  MUCH  MORE.   WE  WILL  TRY  TO  HAVE  SOME
59600	 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
59700	*22 SEP 1972	NEW SAIL	RHT,JRL,KVL
59800	 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
59900	 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
60000	 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
60100	
60200	 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
60300	 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
60400	 NEWFEA.TXT[S,JRL].
60500	
60600	 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
60700	 MODEL HACKERS GLBS10. 
60800	
60900	 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
61000	 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
61100	 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
61200	 ARE RELOADED.
61300	
61400	
61500	 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
61600	 SAISG3 IS DELETED.
61700	
61800	 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
61900	 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
62000	 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
62100	 PROGRAM WITHOUT UNREADABLE MACROS.
62200	
62300	 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
62400	 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
62500	 GLBLOW.REL AS GLBLOW.921.  IF YOU FEEL YOU ARE BEING
62600	 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
62700	 SAY SOMETHING LIKE
62800	 
62900	 R SAIL.921 <CR>
63000	 * FOO←FOO <CR>
63100	 * LOADER!
63200	 * SAILOW.921[1,3],FOO <ALT>
63300	 
63400	 WHERE THE STARS ARE TYPED BY THE SYSTEM
63500	 
63600	 THIS WILL GIVE YOU THE EFFECT OF DOING 
63700	 
63800	 LOA /COM FOO
63900	 
64000	 USING THE PREVIOUS SYSTEM.  
64100	
64200	*22 Sept 1972	Upper Segment RAID and DDT	TVR
64300	RAID or DDT may be retrieved from the disk  and  run  from  an  upper
64400	segment.  This means your core image may contain RAID at a much lower
64500	cost (102 octal words instead of 12200 words for RAID).  For  details
64600	see DEBUG.DOC[1,TVR]
64700	
64800	*22 Sept 1972	AP NEWS (APE)	ME
64900	Multiple word keywords are now implemented in APE.  To use them,
65000	separate the individual words with spaces in your keyword exressions.
65100	
65200	Also, to have only the first few lines of each story you select
65300	typed out, type an "F" at the beginning of the story selection
65400	line ("Read which one(s)?").  If you use both "F" and "=" on
65500	the same line, the order is irrelevant.  When you use the "F"
65600	feature, you cannot spool or save the stories in a file.
65700	
65800	For details on using APE, see the file APE.ME[UP,DOC].
65900	
66000	*12 Oct 1972	FAIL	TVR
66100	FAIL has been changed to stop at each error and give  the  option  to
66200	continue  to next error, continue automatically or to edit.  The edit
66300	
66400	option will call SOS if there are line numbers and TVED if not.   Any
66500	complaints  should be sent to TVR.  If you don't want to stop at each
66600	error, give FAIL the switch (F).  The old version is FAIL.OLD[1,3].
66700	*21 Oct 1972	SAIL	JRL,RHT,KVL
66800	A new SAIL compiler has been put up to correct bugs reported in the
66900	last few weeks. There should be no incompatibitlies with the preceding
67000	compiler and programs compiled with the previous compiler should
67100	be runable with programs compiled with the new compiler. Thus, there
67200	is no need to recompile or even reload SAIL programs which have
67300	been compiled since SEPT 21.  If you do have a program which
67400	compiled in the last month but doesn't now:
67500		1. REPORT THE PROBLEM TO A SAIL HACKER - or send
67600		   a message to AIL, including such details as
67700		   where a copy of the offending program is and the
67800		   nature of the SAIL bug.
67900	        2. You may use the previous compiler by
68000		   R  SAIL.102
68100	           * FOO←FOO
68200	           * <call>
68300	           where  FOO is the name of your sail program and  <call>
68400		   represents the typing of the CALL button (the stars are
68500		   typed by the system). The above sequence is equivalent to
68600		   the system level command:
68700	
68800			COM /COM FOO
68900	
69000	A note to users of multiple processes and matching procedures:
69100		To initialize the multiple process environment the user
69200	        should include the following declaration:
69300	
69400		   EXTERNAL PROCEDURE MAINPR;
69500	
69600		He should also make sure this procedure is called before
69700	        doing any process sprouting or matching procedure calling.
69800		This is best done by using the REQUIRE INITIALIZATION feature
69900	        or by making:
70000		   MAINPR;
70100	        The first executable statement of your program.
70200	This initialization will be compiled in, in the near future but until
70300	then the above hack is required.
70400	*3 Nov 1972	USER INTERRUPTS	FW
70500	The PC stored on a memory protect interrupt via the new-style
70600	user interrupt system is now the exact PC stored by the hardware,
70700	rather than being incremented as it used to be. This is consistent
70800	both with the old-style (DEC) user interrupt system and with the
70900	"ILL MEM REF AT USER xxxxxx" typeout. If you really care about
71000	the exact value of this PC, consult me or the PDP-10 flowcharts,
71100	as it is anything but consistent.
71200	*3 Nov 1972	VIDEO SWITCH	FW
71300	The VDSMAP UUO now allows the 6 extra switch channels to be
71400	addressed by setting bit 9 in the AC and putting the channel number
71500	(0-5) in the TTY# field (11-17).
71600	
71700	*8 Nov 1972	DUMPS	REG
71800	DART, a new program to back up disk  files  on  tapes,  is  available.
71900	system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
72000	run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
72100	See DART.REG[UP,DOC].
72200	
72300	*8 Nov 1972	PROTECTION	REG
72400	The  file  access  protection  bit  400,  which   formerly   had   no
72500	signifigance,  now  means  'Dump  Never' in DART.  All files that had
72600	used this bit have been renamed without it.
72700	
72800	*11 Nov 1972	SYSTEM	REG
72900	The job table JOBQUE in the system now contains either the positive 
73000	or negative value of the queue code of a job. Formerly, it had
73100	always been negative.
73200	
73300	*26 Nov 1972	FTP	DCS
73400	A new FTP has been installed with the following features:
73500	
73600	 1) You needn't type the MODE, TYPE, or BYTE commands at all
73700	    unless you want to change the defaults of S, I, and 36 resp.
73800	    Changing them is inadvisable since we only support those
73900	    settings.  The defaults will be to the foreign host just
74000	    before the first data transfer.
74100	
74200	 2) RSTR clears any DATA connections that the FTP thinks it has
74300	    open.  Sometimes it's wrong.  If you get an indication from
74400	    FTP that a command is illegal because the DATA connection already
74500	    exists, do this command.  It will go away when hacks in FTP
74600	    have been cured.
74700	
74800	 3) QUOT sends the rest of the line directly over the net, so you
74900	    can use it to execute other peoples commands which are either
75000	    nonstandard or just unsupported here.  This won't do any good
75100	    if our end has to be involved in the operation, but it is good
75200	    to do things like STAT (status), and HELP at CMU.
75300	 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
75400	 and NIC document 10596 for complete FTP protocol description.
75500	
75600	*26 Nov 1972	MLISP2	DAV
75700	A new version of MLISP2 has been put on the system.  An old version
75800	exists and will be around for one week.  The main motivation for
75900	the changes was to fix several serious bugs,
76000	and to clean the language up prior to publishing a manual.
76100	Changes:
76200		(1) Variable names can no longer be literals (e.g. IF, FOR, ...).
76300		(2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
76400		(3) SPECIAL variables now must be declared at translation (PARSE)
76500			time.  To facilitate this, a new production has been added,
76600			having the form:	SPECIAL <identifier_list>
76700			It is strongly suggested that all SPECIAL variables be
76800			declared at the top of the program using this production.
76900		(4) ?# in the syntax (to inhibit scanning) should now be just #.
77000			It no longer takes up a syntax position.
77100		(5) Setting variables in backtracking contexts is now done with
77200			real LISP numbers (formerly machine representation).
77300			A function CONTEXT() gets the current backtracking
77400			context.  X{CONTEXT()/10 + 3} ← etc. is now legal.
77500		(6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
77600		(*) Prefixes are more restricted in use; the syntax is
77700			<PREFIX>  <SIMPEX>  as always, but IF, FOR, CASE, etc.
77800			are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
77900			Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
78000			use  RETURN(IF ..., PRINT(CASE ..., etc.
78100		(7) The syntax of SELECT has been changed.  Use SUCCESSOR instead
78200			of NEXT, and FINALLY instead of IN WHICH CASE.
78300			E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
78400				UNLESS NULL(L) FINALLY FAILURE()
78500		(8) MLISP2.PRI now prints as it goes along, instead of at the end.
78600	
78700	*3 Dec 1972	SAIL	RHT
78800	A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
78900	This system will include 
79000		(1) Leap revisions by JRL.  This means that any programs
79100			that use LEAP should be recompiled.
79200		(2) User required initializations will take place as
79300			the first executable statement of the main
79400			program (after outer block arrays have been
79500			initialized). Programs that are loaded
79600			with any .REL files which have user initializations
79700			should have their main programs recompiled.
79800		(3) Hooks into the user interrupt system have been provided.
79900			Those interested should see Russ Taylor.
80000		(4) A new kind of declaration has been provided:
80100			CLEANUP proc1,proc2,proc3;
80200		    Where proc1, etc. are names of (parameterless)
80300		    procedures.  The effect of a CLEANUP declaration 
80400		    is to cause the named procedures to be called
80500		    whenever the block in which it occurs is exited,
80600		    whether by falling through the end, doing a go_to,
80700		    or by any other means.  These procedures will be
80800		    called before any local arrays, sets, or lists are
80900		    released.  The calls will take place in the order
81000	 	    specified.  Thus:
81100	
81200			BEGIN
81300			INTEGER I;
81400			PROCEDURE FOO;I←1;
81500			BEGIN
81600			INTEGER ARRAY X[0:I];
81700			PROCEDURE BAZ;OUTSTR(CVS(X[I]);
81800			CLEANUP FOO,BAZ;
81900			:
82000			COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
82100				BE PRINTED OUT;
82200	
82300			:
82400			END;
82500			END;
82600	
82700		(5) various minor modifications to the process stuff.
82800	
82900	The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
83000	& HLBSA5.REL.  
83100	
83200	The old compiler will be SAIL.D07[1,3]
83300	
83400	*12 Dec 72	AP NEWS (APE)	ME
83500	There is now a full search feature in APE.  If you  type  in  a  word
83600	that  is  not in the keyword dictionary, APE will tell you so and ask
83700	you if you wish a "Full search?".  If you type Y, the news file  will
83800	be  searched  for the specified keyword.  If you type ?, a (complete)
83900	summary of this feature will be typed out (try  it!).   If  you  type
84000	anything else, no search will be done.  You may interrupt a search in
84100	progress by typing any character.  (That means you may not type ahead
84200	during a search.)
84300	
84400	Note:   Every  word not in the dictionary causes a separate search to
84500	take place and will require you to say Y to "Full search?".
84600	
84700	Special note:  Normally the whole news file is searched, taking 8  to
84800	10   seconds,  but  if  a  non-keyword  is  the  second  part  of  an
84900	intersection (eg, NIXON * JJ), then only the  necessary  stories  are
85000	searched.
85100	
85200	*12 DEC 72	PUB	TES
85300	PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
85400	The old version is PUBMAC.OLD[1,3] for a few weeks.
85500	
85600	The PUB manual has been deleted from the disk.  The abstract remains
85700	on PUB.TES[S,DOC].  Bound copies are in the SAILON file drawer.
85800	
85900	In January, a new-SAIL PUB should be up with several obscure but
86000	annoying bugs removed.  Major restrictions and bugs now known:
86100		SEND INDEX ⊂ ... ⊃	must be all on one line
86200		See {PAGE X}		must be followed by a non-word-break
86300						such as  ) , ; ] .
86400						but definitely not a SPACE
86500		NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
86600		TURN OFF "}" inside blocks doesn't always work right (just for "}")
86700		↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
86800		Footnotes hack a lot, esp. if the page fills up during one.
86900	
87000	*23 Jan 73	AP NEWS (APE)	ME
87100	A new version of APE has  been  put  on  the  system.   The  new  APE
87200	includes several changes to input formats, particularly where file or
87300	spooler output is desired.  The file APE.ME[UP,DOC] has been  updated
87400	to  explain  all  the  new  features in detail.  You should read that
87500	file,  especially  pages  4  to  12,  before  trying  to   run   APE.
87600	Alternatively,  you can type a question mark (and carriage return) to
87700	APE at any time to get help.  Here are some of the main changes.
87800	
87900	All input lines  must  now  be  ended  with  carriage  returns  (this
88000	includes the "Y" to cause a search).
88100	
88200	Input to APE from a command file is now possible (and easy/fun).  The
88300	command file should have the name APE.CMD to be most convenient,  but
88400	any  file name is legal as is (almost) any text file format (SOS, TV,
88500	E, etc.).
88600	
88700	A "CHOOSE" feature has been added to allow you to see  the  beginning
88800	of  each  story  and  then  decide if you want to see the rest of the
88900	story.
89000	
89100	To get output to a file, you say
89200		<filename> ←
89300	followed by the usual story selection specification.
89400	
89500	To get output to the spooler, you add an "S" to the selection line.
89600	
89700	To avoid having stories typed out, for instance when they  are  being
89800	spooled, add a "D" (meaning Dont type 'em) to the selection line.
89900	
90000	[ESC] I will interrupt searches as well as typeouts now.
90100	
90200	A  couple  of  features  are written up in the documentation although
90300	they are not yet implemented.  (The writeups do say  of  course  that
90400	these features  are  unimplemented.)  The features are:  1) AUTOMATIC
90500	NOTIFICATION, whereby you can be notified whenever a story  comes  in
90600	that  matches a keyword expression you have specified; and 2) typeout
90700	of the keywords  by  which  a  story  has  been  categorized.   These
90800	features  are  written  up  in  the  hope  that  you  will  read  the
90900	descriptions now and will  understand  the  features  when  they  are
91000	implemented.
91100	
91200	*28 Jan 73	SAIL	JRL
91300	
91400	The item NIC returnedby INTERROGATE when the notice queue is empty,
91500	is now the same as the item UNBOUND used in ? FOREACHES and
91600	matching procedures.
91700		i.e.
91800			(NIC=UNBOUND) is TRUE
91900	
92000	UNBOUND has a new name BINDIT since we felt the name UNBOUND had
92100	erroneous connotations.
92200	
92300	Both NIC and UNBOUND will be allowed for a while, but you should
92400	replace them with BINDIT in your source-files.
92500	
92600	Because of these changes programs using NIC, UNBOUND should be
92700	recompiled.
92800	
92900	ANY is now an item (though it can't be used in MAKE statements).
93000	
93100	So you may now say:
93200			ITMVR ← ANY;
93300			ERASE A⊗B≡ ITMVR;
93400	which will have the same effect as 
93500			ERASE A⊗B≡ANY;
93600	ANY may be an element of a set or list.
93700	All itemvars are originally initialized to ANY.
93800	
93900	*1 Feb 73	AP NEWS (APE)	ME
94000	The keyword listing feature has now been implemented.  Add a  "W"  to
94100	the selection line to have the keywords of each story typed out ahead
94200	of the story.
94300	
94400	*22 Feb 1973	FAIL	FW
94500	Several changes have been made to FAIL:
94600	1)	CALL names are now automatically OPDEFed as their corresponding
94700		CALLIs, so CALL is virtually obsolete. This is done dynamically
94800		so it should always be up to date.
94900	2)	BEND, if given an identifier argument, now checks that argument
95000		against the name of the block it ends, and generates an error
95100		message if they mismatch. This can be used as a check on
95200		BEGIN/BEND phasing.
95300	3)	The symbol $. is now available, which is like . except that it
95400		refers to the location actually occupied by the current instruction.
95500		This differs from . inside literals or if a PHASE is in effect.
95600	4)	Declaring a symbol both INTERNAL and EXTERNAL is now an error,
95700		rather than causing FAIL to drop dead as it used to.
95800	5)	The test for too many BENDs now works properly.
95900	6)	Frequently redefined macros no longer eat up large amounts of core.
96000	
96100	*25 FEB 73	COPY	RPH
96200	
96300	New copy features:
96400	  1) If you use [p] instead of [p,pn] the current default pn is used.
96500	  2) XGPLIST, new command, equivalent to COPY XGP:←.
96600	  3) New switch for font selects, format:
96700	
96800			/FONT{#n}=<filename>{.ext}{[<p>,<pn>]}
96900	
97000		If no ext is given, FNT is assumed. If no p,pn is given
97100	  XGP,SYS is assumed.The #n is the font id number, if it is left
97200	  out, it is assumed to be 0.
97300	  4) New format for /EXTRA switch, if you use /EXTRA≡n.
97400	  (yes that's an equivalence sign), then n is the number
97500	  of scan lines to skip between text lines, not the number
97600	  of extra line feeds to insert.
97700	
97800	*4 MARCH 1973	MLISP	DAV
97900	
98000	New version of MLISP is up; old copies will be kept on MLISP.OLD
98100	and MLISPC.OLD on the system for a week or two.  Differences:
98200	  1) A couple of lingering bugs were squashed.
98300	  2) A COMMENT expression was added so that MLISP will accept TV
98400		format files.  Syntax:
98500			COMMENT <any characters except ; or unpaired " or %> ;
98600		It may occur anywhere an expression may be used, e.g.
98700			A + COMMENT A DUMB PLACE TO PUT IT; B + C
98800			BEGIN
98900			COMMENT A BETTER PLACE TO PUT IT;
99000			A + B + C;
99100			END;
99200		The old %...% comment is still around as always.
99300	  3) An updated version of the LISP compiler is included in MLISPC.
99400	  4) Insignificant change: function names are printed horizontally
99500		instead of vertically.  Don't worry, PRINT is not screwing
99600		up; that's the way it is supposed to work.
99700	
99800	*5 MARCH 1973	PUB	TES
99900	
00000	THIS NOTICE IS ABOUT 70 LINES LONG, IN DECREASING ORDER OF
00100	    IMPORTANCE.
00200	
00300	A NEW VERSION OF PUB IS UP TODAY WITH MANY REPAIRS AND A
00400	FEW CHANGES.  OLD VERSION IS PUB.OLD.  SEE TES WITH PROBLEMS.
00500	
00600	NOTE:  UNTIL THE NEXT VERSION OF PUB IS UP, XGP USERS SHOULD
00700	USE THE "DEVICE TTY" COMMAND OR THE "/T" SWITCH, ESPECIALLY
00800	IF THE PAGE FRAME IS HIGHER THAN 53 LINES.
00900	
01000	ABOUT 15 KNOWN BUGS HAVE BEEN FIXED (THANKS TO RKJ AT CMU FOR
01100	A COUPLE OF STICKLERS).  FOOTNOTES SHOULD WORK BETTER;
01200	VARIABLE DECLARATIONS WORK; CROSS-REFERENCES OF THE FORM
01300	"UNIT!" LABEL  NOW WORK; AREA TEXT AND COUNT PAGE CAN ONCE
01400	AGAIN BE DECLARED IN BLOCKS; ROMAN NUMERALS, MOD, MIN, AND,
01500	GROUP BEGIN...END, INSERT...PORTION (WITH NO SENDS), AND SOME
01600	OTHER THINGS NOW WORK WELL.  TRY OUT YOUR FAVORITE BUG.
01700	
01800	ONE BUG NOT YET FIXED: SOMETIMES PUB WILL LOOP
01900	WHEN THERE ARE AREAS DECLARED THAT DON'T START AT CHAR 1.
02000	REPORT OTHER BUGS TO TES.
02100	
02200	CHANGES AND NEW FEATURES:
02300	(1) TYPEOUT DURING COMPILATION RESEMBLES NEW SAIL'S.
02400	    NOTE: FILES LIKE 3INDE.PUZ AND 2CONT.PUG ARE GENERATED
02500	    FILES.  PAGE 1 OF TV FILES IS NOT REPORTED BY PUB.
02600	
02700	(2) THERE IS NO LONGER A BLANK PAGE AT THE BEGINNING OF LPT
02800	    DOCUMENTS.
02900	
03000	(3) NEW COMMAND TO CIRCUMVENT CHANGE (2): "BLANK PAGE N" CLOSES
03100	    THE CURRENT PGE AND LEAVES N BLANK PAGES IN THE DOCUMENT.
03200	    THE PAGE COUNTER IS NOT AFFECTED.  IF N IS OMITTED, 1 IS
03300	    ASSUMED.
03400	
03500	(4) FOR TTY USERS: INSTEAD OF CURLY BRACKETS AND HORSESHOE
03600	    BRACKETS, YOU CAN NOW USE THE FOLLOWING CHARACTER PAIRS:
03700	        $( MEANS LEFT HORSESHOE (OPEN MACRO)
03800	        )$ MEAN RIGHT HORSESHOE (CLOSE MACRO)
03900	        ]$ MEANS RIGHT BRACE (SWITCH TO TEXT MODE)
04000	    THESE ARE ONLY VALID IN COMMAND MODE AND NEED NOT BE TURNED
04100	    ON.  ON THE OTHER HAND, THE FOLLOWING CONTROL CHARACTERS
04200	    ARE ONLY RECOGNIZED IN TEXT MODE AND MUST BE TURNED ON
04300	    (OTHER CHARACTERS MAY BE TURNED ON FOR THEM):
04400	        $[ MEANS LEFT BRACE (SWITCH TO COMMAND MODE).
04500	
04600	(5) NEW FEATURE: TURN ON/OFF TAB FOR "<CHARACTER>" ;;
04700	    AS PUB READS THE MANUSCRIPT, IT SUBSTITUTES FOR EACH "TAB"
04800	    FROM ONE TO EIGHT SPACES.  THIS COMMAND CHANGES PUB SO THAT
04900	    IT SUBSTITUTES THE SINGLE CHARACTER <CHARACTER> INSTEAD.
05000	    THE COMMAND MUST BE FOLLOWED BY TWO SEMICOLONS OR ELSE IT MAY
05100	    NOT TAKE EFFECT ON THE NEXT LINE.  IF IT IS DECLARED IN A BLOCK,
05200	    THE "END" OF THE BLOCK MUST BE FOLLOWED BY TWO SEMICOLONS OR
05300	    THE ORIGINAL MEANING OF TAB MAY NOT REAPPEAR IN TIME FOR THE
05400	    NEXT LINE.
05500	
05600	(6) SINGLE SPACE, DOUBLE SPACE, AND TRIPLE SPACE NOW BREAK BEFORE
05700	    CHANGING THE VALUE OF SPREAD, SO THEY TAKE EFFECT IMMEDIATELY.
05800	
05900	SUGGESTIONS AND WARNINGS:
06000	(1) "COUNT PAGE" INITIALLIZES THE PAGE COUNTER TO NULL.  IT
06100	    GETS STEPPED TO 1 THE NEXT TIME A PAGE IS OPENED.
06200	    THIS IS WHY THE TITLE PAGE HAS A BLANK PAGE NUMBER.
06300	
06400	(2) AREA RE-DECLARATIONS DO NOT TAKE EFFECT UNTIL THE
06500	    CURRENT PAGE IS CLOSED.
06600	
06700	(3) IF YOUR DOCUMENT IS LONG, IT IS HELPFUL TO HAVE A SOURCE
06800	    FILE FOR EACH CHAPTER, AND ON EACH DEBUG RUN TO "REQUIRE"
06900	    FROM THE MAIN MANUSCRIPT FILE ONLY THOSE CHAPTER FILES THAT
07000	    YOU ARE TESTING.  GLOBAL MACROS SHOULD APPEAR IN THE MAIN
07100	    FILE OF COURSE.
07200	
07300	THE MANUAL HAS NOT BEEN CHANGED, BUT IT IS BACK ON THE DISK
07400	FOR THE BENEFIT OF NET USERS (SEE PUB.TES[S,DOC] FOR DETAILS).
07500	
07600	*9 MARCH 1973	MLISP2	DAV
07700	
07800	A new version of MLISP2 is up.  Old version is on SYS:MLISP2.OLD for
07900	a week or so.  There have been extensive changes, but most are additions
08000	so that programs shouldn't have to be altered.  The changes:
08100	
08200	  1) The code generated in the syntax part of productions is somewhat
08300		shorter and more efficient.
08400	
08500	  2) There is now a way to prevent an identifier in the syntax part of
08600		a production from being turned into a LITERAL, namely precede it
08700		with a quote mark (').
08800		Example:	{IF ...}
08900		makes IF a LITERAL, as well as generating code to check for it,
09000		but		{'IF ...}
09100		just generates the code to check for it.  In fact, any token
09200		of type identifier, number or delimiter may be included in
09300		the syntax by preceeding it with the quote mark; previously
09400		only delimiters could be so included.
09500	
09600	  3) Numbers in syntax patterns MUST now be preceeded by the quote
09700		mark; previously they could occur alone.  This should not
09800		affect anyone, since I don't know of anyone who uses numbers.
09900	
10000	  4) The syntax of FOR, WHILE and UNTIL loops has been generalized
10100		slightly:  `WHILE' and `UNTIL' are now interchangeable:
10200		Examples:	FOR NEW I IN L DO NIL UNTIL I = X;
10300				FOR NEW I IN L DO NIL WHILE I = X;
10400				DO PRINT(X) UNTIL A=B;
10500				DO PRINT(X) WHILE A=B;
10600				WHILE A=B DO PRINT(X);
10700				UNTIL A=B DO PRINT(X);
10800		In addition, the code generated by COLLECT in all of the loops
10900		is now more efficient (generates an NCONC in some cases, rather
11000		than an APPEND).
11100	
11200	  5) The DEFINE expression and the vector operator (⊗) have been
11300		added to MLISP2 to make it more compatible with MLISP
11400		(c.f. the MLISP manual).  However, the DEFINE
11500		expression is not quite as general: only prefix and infix
11600		functions may be DEFINEd, whereas MLISP would allow any
11700		symbol to be DEFINEd.
11800		Syntax:	DEFINE  <dterm>, <dterm>, ..., <dterm>	(at least 1)
11900			<dterm> ::= <identifier>  PREFIX  [<token>]  [<integer>]
12000				    <identifier>  <integer>  <integer>
12100				    <identifier>  <token>  [<integer>  <integer>]
12200		where [] means optional.
12300		The integers are binding powers for the function; only one
12400		binding power, the right binding power, needs to be specified for
12500		prefixes.  The <token>s are identifiers or delimiters which
12600		may serve as an abbreviation for the function.
12700		Examples:	DEFINE NOT PREFIX;
12800				DEFINE NOT PREFIX ¬;
12900				DEFINE NOT PREFIX 1000;
13000				DEFINE PLUS + 350 400;
13100	
13200	  6) ONLY FUNCTIONS THAT ARE EXPLICITLY DEFINE'D TO BE PREFIXES MAY
13300		NOW BE USED AS PREFIXES (I.E. WITHOUT () AROUND THEIR
13400		ARGUMENT AND WITH THE VECTOR OPERATOR ⊗)!!!  NO MORE USER-DEFINED
13500		PREFIXES UNLESS EXPLICITLY DEFINE'D!!!
13600	
13700	*16 March 1973	FREEFOROL processes Text Macros	LES
13800	Freeforol may be used to  generate  form  letters  or  other fill-in-
13900	the-blanks text.  It is described in FREEFO.LES[UP,DOC].
14000	
14100	*21 March 1973	WHERE Command	TVR
14200	Typing  WHERE  <programmer>  will  print  the  status  of  such  jobs
14300	currently logged in.  For  example,  WHERE  NET,GUE  will  WHERE  all
14400	network guests. Like WHO, this also clobbers your core image.
14500	
14600	*27 March 1973	TV ↔ E switching	DCS and FW
14700	
14800	During transition from TV to E, there will be features available
14900	  in one which are unavailable in the other.  To ease the switch,
15000	  we have installed complementary extend-mode commands:  "ETV"
15100	  in TV, "TV" in E.  Executing it will switch editors (writing 
15200	  current page first, if necessary).   The new editor will be 
15300	  editing the same file, on the same page and line, with the same
15400	   protection (readonly or readwrite).
15500	
15600	The "TV" command in E is only a special case of a much more 
15700	   glorious "RUN" feature.  For more information see TV2E.FW[UP,DOC].
15800	
15900	*4 April 1973	TALKER, FTP	DCS
16000	
16100	In response to the Site: prompt, one can type a site name or
16200	a (decimal) site number -- one way to try to find out the site
16300	name of an otherwise Anonymous site.
16400	
16500	*5 April 1973	PUB	TES
16600	Users of Jerry Agin's underground figure macros note:
16700	
16800	"MACRO SECREF" et al have a bug which was ignored by old
16900	versions of PUB but now result in the error message:
17000		"EXTRANEOUS { IN COMMAND LINE"
17100	To fix this, remove both the { and } from these particular
17200	macros.  E.G.:
17300		.MACRO SECREF ⊂ "Section " ;{SECTION! LBL} ⊃
17400	should be:
17500		.MACRO SECREF ⊂ "Section " ;SECTION! LBL ⊃
17600	
17700	If you like, this can be abbreviated:
17800		.MACRO SECREF ⊂ "Section!" LBL ⊃
17900	which did not work in old versions but now does!
18000	
18100	*8 April 73	APE, AUTOMATIC NOTIFICATION	ME
18200	
18300	If you wish to be notified each and every time an AP story  comes  in
18400	that  matches  a given keyword expression, type the expression to APE
18500	and precede it with a dollar sign ($). For example,
18600		$JUPITER*PIONEER
18700	When a story comes in that matches the expression, you will be sent a
18800	message which you will get when you login.  Also, if you  are  logged
18900	in at the time the story comes in, the message
19000		*** AP STORY FOUND ***
19100	will be typed on your console.
19200	
19300	To see what automatic notification requests you currently have,  type
19400	the  keyword expression "$" (just dollar sign) to APE.  To be able to
19500	delete these requests, type the expression "$$".  Each  request  will
19600	expire  two months after it is submitted. At that time you will get a
19700	message indicating that the request has expired.
19800	
19900	*11 APR 73	XGP	REM
20000		The currently most-useful program for printing  documents  on
20100	the  Xerox  Graphics  Printer  is MRPP3[XGP,REM] (Maas Research Paper
20200	Plotter program, version 3) which allows you to change fonts anywhere
20300	(in the middle of a word if you wish), do paragraph justification and
20400	centering, super-scripts above sub-scripts, nicely-formatted  tabular
20500	listings,  etc.   The  latest  documentation is usually posted on the
20600	bulletin board near the machine room, however if  you  want  you  own
20700	copy here is what you do:
20800	.RU MRPP3[XGP,REM]
20900	FOO.LST←MRPP3.WRU[XGP,REM]
21000	then when it is all finished and you see XG @QQXGP.RPG in  your  line
21100	editor,  hit  carriage return, wait for the device to be available if
21200	it is busy, then collect the approximately three pages as  they  come
21300	out  of the XGP (after the 2 8/10 pages of chard that comes out ahead
21400	of each listing).
21500	
21600	*9 APR 73	APE, AUTOMATIC NOTIFICATION	ME
21700	
21800	Here are some notes on using Automatic Notification for AP stories.
21900	
22000	Automatic  notification (AN)  is  intended to  be used  for  two main
22100	purposes.  1) If you are expecting an urgent story to come in  at any
22200	moment, and you want to be notified as soon as it comes  in (assuming
22300	you are logged in),  automatic notification saves you the  trouble of
22400	running APE every half  hour to find out  if your story has  come in.
22500	2) If you are expecting  a story to come  in some day, but  you don't
22600	know when, then AN saves you the effort of running APE every  day, if
22700	you wouldn't otherwise do so.
22800	
22900	If  you find  you are  being notified  about the  same kind  of story
23000	several times a day, and if the stories are not  particularly urgent,
23100	then you  will probably  find that  the normal  use of  APE, possibly
23200	using a command file (see previous section) will be  more convenient.
23300	Also, the more AN requests  there are, the more work  the continually
23400	running special  AP programs have  to do.  However,  you are  free to
23500	choose the method of using APE that best fits your purposes.
23600	
23700	One final note on AN: When you get a hit from an AN request, the best
23800	way  to use  APE  to read  the story  is  to type  in  the expression
23900	(possibly using a command file) that got the hit.  Alternatively, you
24000	can  type in  the sequence  number of  the story  found, but  this is
24100	liable to give you an extra story with the same sequence number.  You
24200	can  combine  these  two  methods  and  type  something   like  (say)
24300	"#35*CHESS", if CHESS was the  AN request getting a hit on story #35.
24400	If a story you have been notified about is more than a day or so old,
24500	then you will probably not find it with APE.  However, since the news
24600	is  spooled  every day, you should be able to find old stories in the
24700	stack of listings in the lounge (unless you are a remote user!).  For
24800	even older listings, see ME.
24900	
25000	For more details, see APE.ME[UP,DOC], special features 10, 11 and 12.
25100